სმდაRგ: მესამე შეხვედრა

სტატისტიკურ მონაცემთა დამუშავება და ანალიზი R-ის გარემოში

დავით სიჭინავა
23 თებერვალი, 2023 წ.

დღევანდელი გეგმა:

  • (მოკლე) შესავალი მონაცემთა ვიზუალიზაციაში;
  • ვიზუალიზაციის ,,ფენოვანი" გრამატიკა;
  • ggplot2 ბიბლიოთეკა;
  • პრაქტიკული სამუშაოები;

სანამ დავიწყებდეთ:

  • დავრწმუნდეთ, რომ ყველა თქვენგანს ჩამოტვირთული აქვს ggplot2 და dplyr ბიბლიოთეკა
  • მიუთითეთ სამუშაო დირექტორია (კარგი პრაქტიკა)

სანამ დავიწყებდეთ:

library(ggplot2) #ვიზუალიზაცია
library(gapminder) #სავარჯიშო მონაცემები Gapminder-იდან
library(scales) #ბიბლიოთეკა მასშტაბის სწორად მისათითებლად

რა არის მონაცემთა კარგი ვიზუალიზაცია?

Drawing წყარო: socviz.co

რა არის მონაცემთა _ცუდი_ ვიზუალიზაცია?: გემოვნებაზე დაობენ

Drawing წყარო: socviz.co

რა არის მონაცემთა _ცუდი_ ვიზუალიზაცია?: გემოვნებაზე დაობენ

Drawing

რა არის მონაცემთა _ცუდი_ ვიზუალიზაცია?: გემოვნებაზე დაობენ

Drawing

რა არის მონაცემთა _ცუდი_ ვიზუალიზაცია?: ცუდი მონაცემები

Drawing წყარო: socviz.co

რა არის მონაცემთა _ცუდი_ ვიზუალიზაცია?: ცუდი მონაცემები

Drawing წყარო: socviz.co

(მოკლე) შესავალი მონაცემთა ვიზუალიზაციაში

  • აჩვენეთ მონაცემები,
  • ,,აიძულეთ" მაყურებელი, იფიქროს მონაცემებზე,
  • ნუ დაამახინჯებთ იმას, თუ რას ამბობს მონაცემები,
  • წარმოადგინეთ ბევრი მონაცემი მცირე სივრცეში
  • იყავით თანმიმდევრული
  • წაახალისეთ მაყურებლის თვალი, ერთმანეთს სხვადასხვა კატეგორია შეადაროს
  • წარმოადგინეთ მონაცემთა დეტალების სხვადასხვა დონე
  • იფიქრეთ, თუ რა არის დიაგრამის მიზანი: აღწერა, აღმოჩენა, ტაბულაცია თუ - დეკორაცია
  • დიაგრამა ტექსტთან ინტეგრირებული უნდა იყოს

(მოკლე) შესავალი მონაცემთა ვიზუალიზაციაში:

  • მონაცემების მიერ დიაგრამაზე დაკავებული ფართობი მათი რაოდენობრივი პროპორციების შესატყვისი უნდა იყოს
  • მოიშველიეთ წარწერები, რათა დიაგრამაზე არსებული გაურკვევლობები ახსნათ

(მოკლე) შესავალი მონაცემთა ვიზუალიზაციაში:

  • აჩვენეთ მონაცემთა ვარიაცია და არა - დიზაინის ვარიაცია

(მოკლე) შესავალი მონაცემთა ვიზუალიზაციაში:

Drawing

(მოკლე) შესავალი მონაცემთა ვიზუალიზაციაში: ტაფტის ხუთი მცნება

  • აჩვენეთ მონაცემები,
  • გაზარდეთ მონაცემთა და ,,მელნის" შეფარდება,
  • წაშალეთ ის ,,მელანი", რომელიც მონაცემებიდან არ მომდინარეობს,
  • წაშალეთ უსარგებლო ,,მელანი", რომელიც მონაცემებიდან მომდინარეობს,
  • გაუკეთეთ რედაქტირება თქვენს ნამუშევარს

(მოკლე) შესავალი მონაცემთა ვიზუალიზაციაში: გეშტალტის პრინციპები

Drawing წყარო: socviz.co

(მოკლე) შესავალი მონაცემთა ვიზუალიზაციაში: გეშტალტის პრინციპები

ადამიანის თვალი მიდრეკილია, მონაცემებში გარკვეული კანონზომიერებები ,,დაინახოს'' იმის მიუხედავად, არსებობს თუ არა ეს კანონზომიერება Drawing წყარო: socviz.co

(მოკლე) შესავალი მონაცემთა ვიზუალიზაციაში: გეშტალტის პრინციპები

  • სიახლოვე: ერთმანეთთან ახლოს მდებარე მონაცემები ერთმანეთთან დაკავშირებულად გვეჩვენება
  • მსგავსება: გარეგნულად შესადარი მონაცემები მსგავსად მიგვაჩნია
  • კავშირი: მონაცემები, რომლებიც ვიზუალურად ერთმანეთთან დაკავშირებულია, მსგავსი გვგონია
  • შევსება: ადამიანის თვალი ცდილობს, ნაწილობრივ დაფარული ფიგურები შეავსოს მისთვის ნაცნობი ფორმებით
  • ,,საერთო ბედი'' - ელემენტები, რომლებიც თანმიმდევრული ტრაექტორიით ხასიათდებიან, ერთი ელემენტის ნაწილად მოიაზრებიან

(მოკლე) შესავალი მონაცემთა ვიზუალიზაციაში: თუმცა, ტაფტიც ცდება...

Drawing წყარო: socviz.co

მონაცემთა ,,ფენოვანი" გრამატიკა

Drawing წყარო: menu.ge

მონაცემთა ,,ფენოვანი" გრამატიკა (Wilkinson, 2005; Wickham, 2008)

  • მონაცემები და ,,ესთეტიკა'';
  • ობიექტები (,,გეომები'');
  • სტატისტიკური ტრანსფორმაცია (,,სტატები'');
  • მასშტაბი;
  • წახნაგები (,,ფაცეტები'')

მონაცემთა ,,ფენოვანი" გრამატიკა (Wilkinson, 2005; Wickham, 2008)

Drawing წყარო: socviz.co

მონაცემთა ,,ფენოვანი" გრამატიკა: `ggplot2`

data(gapminder)

p <- ggplot(gapminder)

p

მონაცემთა ,,ფენოვანი" გრამატიკა: `ggplot2`

  • რა თქმა უნდა, როგორც ყველაფერი, ისე დიაგრამა ggplot2 გარემოში ობიექტს წარმოადგენს
  • ,,ესთეტიკის'' კარტირება ხდება aes() ფუნქციის მეშვეობით.
  • ,,ესთეტიკა'' აჩვენებს, თუ რა ცვლადები უნდა იქნას გამოყენებული დიაგრამაში

მონაცემთა ,,ფენოვანი" გრამატიკა: `ggplot2`

p <- ggplot(data = gapminder,
            mapping = aes(x = gdpPercap,
                          y = lifeExp))

p + geom_point()

მონაცემთა ,,ფენოვანი" გრამატიკა: `ggplot2`

  • მივუთითოთ, თუ რას ვყენებთ მონაცემებად,
  • მივუთითოთ, მონაცემთა შორის კავშირი,
  • მივუთითოთ, თუ რა ფორმით გვსურს ამ კავშირის გამოსახვა
  • ეს ყველაფერი ფენების სახით დავამატოთ დიაგრამას,
  • გამოვიყენოთ დამატებითი ფუნქციები მასშტაბის, წარწერების, ღერძების და ა.შ. მანიპულირებისთვის

მონაცემთა ,,ფენოვანი" გრამატიკა: `tidy` მონაცემები (Codd, 1990; Wickham, 2010)

  • თითოეული ცვლადი მოცემულია ცალკე სვეტში,
  • თითოეული ჩანაწერი მოცემულია ცალკე რიგში,
  • ჩანაწერის თითოეული ტიპი ქმნის ცხრილს,

Drawing წყარო: Wickham, 2010

მონაცემთა ,,ფენოვანი" გრამატიკა: `tidy` მონაცემები (Codd, 1990; Wickham, 2010)

Drawing წყარო: Wickham, 2010

მონაცემთა ,,ფენოვანი" გრამატიკა: ,,ესთეტიკა''

  • position: პოზიცია,
  • color: ,,გარეთა ფერი",
  • fill: ,,შიდა ფერი",
  • shape: მარკერების ფორმა,
  • linetype: წრფის ტიპი,
  • size: ზომა

მონაცემთა ,,ფენოვანი" გრამატიკა: ,,სტატები""

  • გამომდინარე იქიდან, რომ ჩვენ ქვეცნობიერად ვცდილობთ, მონაცემებში (არ)არსებული დამოკიდებულებები დავინახოთ, საჭიროა, რეალურად არსებული მოდელები ვაჩვენოთ
p <- ggplot(data = gapminder,
            mapping = aes(x = gdpPercap,
                          y=lifeExp))
p + geom_point()+
    geom_smooth()

მონაცემთა ,,ფენოვანი" გრამატიკა: ,,სკალები""

p <- ggplot(data = gapminder,
            mapping = aes(x = gdpPercap,
                          y=lifeExp))
p + geom_point()+
    geom_smooth()+
    scale_x_log10()

მონაცემთა ,,ფენოვანი" გრამატიკა: ,,ესთეტიკა""

ggplot(gapminder,
          aes(x = gdpPercap,
          y=lifeExp))+
      geom_point(aes(color=continent))+
      geom_smooth()+
      scale_x_log10()

მონაცემთა ,,ფენოვანი" გრამატიკა: ,,ესთეტიკა""

ggplot(gapminder,
          aes(x = gdpPercap,
          y=lifeExp))+
      geom_point(aes(color=pop))+
      geom_smooth()+
      scale_x_log10()

ggsave("gapminder_plot.png", device="png", height=5)

მონაცემთა ,,ფენოვანი" გრამატიკა: ,,ჯგუფები და წახნაგები"

p <- ggplot(data = gapminder, mapping = aes(x = year, y = gdpPercap))
p + geom_line(color="gray70", aes(group = country)) +
    geom_smooth(size = 1.1, method = "loess", se = FALSE) +
    scale_y_log10(labels=scales::dollar) +
    facet_wrap(~ continent, ncol = 5) +
    labs(x = "წელი",
         y = "მშპ. ერთ სულ მოსახლეზე",
         title = "მშპ. ერთ სულ მოსახლეზე, ხუთი კონტინენტის მიხედვით")

მონაცემთა ,,ფენოვანი" გრამატიკა: Small multiples

  • თუკი მონაცემებში არსებობს ლოგიკური კატეგორიები, მნიშვნელოვანია მათი ჩვენება
  • ჩვენს შემთხვევაში, მონაცემთა კონტინენტების მიხედვით წარმოდგენა გაცილებით საინტერესო და მდიდარ ისტორიას გვიყვება
  • ,,წახნაგები'' სწორედ ამაში გვეხმარება

სასარგებლო რესურსები:

გამოყენებული რესურსები: